package com.bot.nft.module.cm.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import com.bot.nft.module.cm.domain.CmCarouselInfo;
import com.bot.nft.module.cm.domain.bo.CmCarouselInfoBo;
import com.bot.nft.module.cm.domain.vo.CmCarouselInfoVo;

import java.util.List;


/**
 * 描述: 首页轮播图业务接口，包含添加，发布站内公告核心业务功能 <br>
 * <p>
 * 时间: 2023-11-23 09:52
 * 负责人: 卢梦丽
 **/
public interface ICmCarouselService extends IService<CmCarouselInfo> {

    /**
     * 新增首页轮播图功能
     *
     * @param carouselCmInfoBo 首页轮播图信息，包含首页轮播图，轮播图序号等
     * @return Boolean 成功/true，失败/false
     */
    public Boolean addCarouselCmInfo(CmCarouselInfoBo carouselCmInfoBo);

    /**
     * 修改轮播内容功能
     *
     * @param carouselCmInfoBo 首页轮播图信息，包含首页轮播图，轮播图序号等
     * @return Boolean 成功/true，失败/false
     */
    public Boolean updateCarouselCmInfo(CmCarouselInfoBo carouselCmInfoBo);

    /**
     * 查看轮播内容功能
     *
     * @param id 首页轮播图信息标识
     * @return 首页轮播图信息，包含首页轮播图，轮播图序号等
     */
    public CmCarouselInfoVo getCarouselCmInfo(String id);

    /**
     * 删除首页轮播图功能
     *
     * @param id 首页轮播图信息标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean delCarouselCmInfo(String id);

    /**
     * 分页查询轮播内容功能
     *
     * @param keyword  首页轮播图关键字
     * @param pageNo   当前页数
     * @param pageSize 每页显示条数
     * @return 首页轮播图信息*
     */
    public Page<CmCarouselInfoVo> queryCarouselByPage(String keyword, Integer status, Integer pageNo, Integer pageSize);

    /**
     * 调整轮播内容顺序功能（升序）
     *
     * @param id 首页轮播图标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean adjustCarouselCmInfo(String id, Integer carouselNum);

    /**
     * 调整轮播内容顺序功能（降序）
     *
     * @param id
     * @param carouselNum
     * @return
     */
    public Boolean descAdjustCarouselCmInfo(String id, Integer carouselNum);

    /**
     * 禁用轮播内容功能
     *
     * @param id 首页轮播图标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean disCarouselCmInfo(String id);

    /**
     * 启用轮播内容功能
     *
     * @param id 首页轮播图标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean startCarouselCmInfo(String id, Integer carouselNum);

    /**
     * 预览轮播内容功能
     *
     * @param id 首页轮播图标识
     * @return 首页轮播图信息，包含首页轮播图，轮播图序号等
     */
    public CmCarouselInfoVo preCarouselCmInfo(String id);

    /**
     * 分页查询轮播内容功能 (app端)
     *
     * @return 首页轮播图信息*
     */
    List<CmCarouselInfoVo> queryCarousel();




}
